home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / scsh / bsd / tty-consts.scm < prev    next >
Text File  |  1995-11-04  |  8KB  |  221 lines

  1. ;;; Constant definitions for tty control code (POSIX termios).
  2. ;;; Copyright (c) 1995 by Brian Carlstrom.
  3. ;;; Largely rehacked by Olin.
  4. ;;; Constants from NetBSD header files substituted by Bill Sommerfeld
  5.  
  6. ;;; These constants are for NetBSD 1.1 pre-alpha
  7. ;;; and are taken from /usr/include/sys/termios.h.  These should
  8. ;;; work with any BSD4.4-Lite derived system (such as FreeBSD).
  9.  
  10. ;;; Non-standard (POSIX, SVR4, 4.3+BSD) things:
  11. ;;; - Some of the baud rates.
  12.  
  13.  
  14. ;;; Special Control Characters 
  15. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  16. ;;;  Indices into the c_cc[] character array.
  17.  
  18. ;;;    Name                 Subscript    Enabled by 
  19. ;;;     ----                 ---------    ----------
  20. ;;;  POSIX
  21. (define ttychar/eof        0)        ; ^d icanon
  22. (define ttychar/eol        1)        ;    icanon
  23.  
  24. (define ttychar/delete-char    3)        ; ^? icanon
  25.  
  26. (define ttychar/delete-line    5)        ; ^u icanon
  27.  
  28. (define ttychar/interrupt    8)        ; ^c isig
  29. (define ttychar/quit        9)        ; ^\ isig
  30. (define ttychar/suspend        10)        ; ^z isig
  31.  
  32. (define ttychar/start        12)        ; ^q ixon, ixoff
  33. (define ttychar/stop        13)        ; ^s ixon, ixoff
  34. (define ttychar/min        16)        ;    !icanon    ; Not exported
  35. (define ttychar/time        17)        ;    !icanon    ; Not exported
  36.  
  37. ;;; SVR4 & 4.3+BSD
  38. (define ttychar/eol2        2)        ;    icanon
  39. (define ttychar/delete-word    4)        ; ^w icanon
  40. (define ttychar/reprint     6)        ; ^r icanon
  41. (define ttychar/delayed-suspend    11)        ; ^y isig
  42. (define ttychar/literal-next    14)        ; ^v iexten
  43. (define ttychar/discard        15)        ; ^o iexten
  44.  
  45. ;;; 4.3+BSD
  46. (define ttychar/status        18)        ; ^t icanon 
  47.  
  48. ;;; Length of control-char string -- *Not Exported*
  49. (define    num-ttychars        20)
  50.  
  51. ;;; Magic "disable feature" tty character
  52. (define disable-tty-char (ascii->char #xff))    ; _POSIX_VDISABLE
  53.  
  54. ;;; Flags controllling input processing
  55. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  56.  
  57. ;;;  POSIX
  58. (define ttyin/ignore-break        #x00001)    ; ignbrk
  59. (define ttyin/interrupt-on-break    #x00002)    ; brkint
  60. (define ttyin/ignore-bad-parity-chars    #x00004)    ; ignpar
  61. (define ttyin/mark-parity-errors    #x00008)    ; parmrk
  62. (define ttyin/check-parity        #x00010)    ; inpck
  63. (define ttyin/7bits            #x00020)    ; istrip
  64. (define ttyin/nl->cr            #x00040)    ; inlcr
  65. (define ttyin/ignore-cr            #x00080)    ; igncr
  66. (define ttyin/cr->nl            #x00100)    ; icrnl
  67. (define ttyin/output-flow-ctl        #x00200)    ; ixon
  68. (define ttyin/input-flow-ctl        #x00400)    ; ixoff
  69.  
  70. ;;; SVR4 & 4.3+BSD
  71. (define ttyin/xon-any           #x00800)    ; ixany: Any char restarts after stop
  72. (define ttyin/beep-on-overflow #x02000)    ; imaxbel: queue full => ring bell
  73.  
  74. ;;; SVR4
  75. (define ttyin/lowercase           #f)    ; iuclc: Map upper-case to lower case
  76.  
  77.  
  78. ;;; Flags controlling output processing
  79. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  80.  
  81. ;;;  POSIX 
  82. (define    ttyout/enable         #x000001)  ; opost: enable output processing
  83.  
  84. ;;; SVR4 & 4.3+BSD
  85. (define ttyout/nl->crnl         #x000002)    ; onlcr: map nl to cr-nl
  86.  
  87. ;;; 4.3+BSD
  88. (define ttyout/discard-eot     #x000008)    ; onoeot
  89. (define ttyout/expand-tabs     #x000004)    ; oxtabs (NOT xtabs)
  90.  
  91. ;;; SVR4
  92. (define ttyout/cr->nl         #f)    ; ocrnl
  93. (define ttyout/fill-w/del     #f)    ; ofdel
  94. (define ttyout/delay-w/fill-char #f)    ; ofill
  95. (define ttyout/uppercase     #f)    ; olcuc
  96. (define ttyout/nl-does-cr     #f)    ; onlret
  97. (define ttyout/no-col0-cr     #f)    ; onocr
  98.  
  99. ;;; Newline delay
  100. (define    ttyout/nl-delay        #f)    ; mask (nldly)
  101. (define     ttyout/nl-delay0    #f)
  102. (define     ttyout/nl-delay1    #f)    ; tty 37 
  103.  
  104. ;;; Horizontal-tab delay
  105. (define    ttyout/tab-delay    #f)    ; mask (tabdly)
  106. (define     ttyout/tab-delay0    #f)
  107. (define     ttyout/tab-delay1    #f)    ; tty 37 
  108. (define     ttyout/tab-delay2    #f)
  109. (define     ttyout/tab-delayx    #f)    ; Expand tabs (xtabs, tab3)
  110.  
  111. ;;; Carriage-return delay
  112. (define    ttyout/cr-delay        #f)    ; mask (crdly)
  113. (define     ttyout/cr-delay0    #f)
  114. (define     ttyout/cr-delay1    #f)    ; tn 300 
  115. (define     ttyout/cr-delay2    #f)    ; tty 37 
  116. (define     ttyout/cr-delay3    #f)    ; concept 100 
  117.  
  118. ;;; Vertical tab delay 
  119. (define    ttyout/vtab-delay    #f)    ; mask (vtdly)
  120. (define     ttyout/vtab-delay0    #f)
  121. (define     ttyout/vtab-delay1    #f)    ; tty 37 
  122.  
  123. ;;; Backspace delay
  124. (define    ttyout/bs-delay        #f)    ; mask (bsdly)
  125. (define     ttyout/bs-delay0    #f)
  126. (define     ttyout/bs-delay1    #f)
  127.  
  128. ;;; Form-feed delay
  129. (define ttyout/ff-delay        #f)    ; mask (ffdly)
  130. (define     ttyout/ff-delay0    #f)
  131. (define     ttyout/ff-delay1    #f)
  132.  
  133. (define    ttyout/all-delay    #f)
  134.  
  135. ;;; Control flags - hacking the serial-line.
  136. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  137.  
  138. ;;;  POSIX
  139. (define ttyc/char-size        #x00300)    ; csize: character size mask 
  140. (define  ttyc/char-size5    #x00000)    ; 5 bits (cs5)
  141. (define  ttyc/char-size6    #x00100)    ; 6 bits (cs6)
  142. (define  ttyc/char-size7    #x00200)    ; 7 bits (cs7)
  143. (define  ttyc/char-size8    #x00300)    ; 8 bits (cs8)
  144. (define ttyc/2-stop-bits    #x00400)    ; cstopb: Send 2 stop bits.
  145. (define ttyc/enable-read    #x00800)    ; cread: Enable receiver.
  146. (define ttyc/enable-parity    #x01000)    ; parenb
  147. (define ttyc/odd-parity        #x02000)    ; parodd
  148. (define ttyc/hup-on-close    #x04000)    ; hupcl: Hang up on last close.
  149. (define ttyc/no-modem-sync    #x08000)    ; clocal: Ignore modem lines.
  150.  
  151. ;;;  4.3+BSD
  152. (define    ttyc/ignore-flags    #x00001)    ; cignore: ignore control flags 
  153. (define ttyc/CTS-output-flow-ctl #x00010000)    ; ccts_oflow: CTS flow control of output
  154. (define ttyc/RTS-input-flow-ctl  #x00010000)    ; crts_iflow: RTS flow control of input
  155. (define ttyc/carrier-flow-ctl     #x00100000)    ; mdmbuf
  156.  
  157. ;;; Local flags -- hacking the tty driver / user interface.
  158. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  159.  
  160. ;;;  POSIX
  161. (define ttyl/visual-delete    #x00000002)    ; echoe: Visually erase chars
  162. (define ttyl/echo-delete-line #x00000004)    ; echok: Echo nl after line kill
  163. (define ttyl/echo          #x00000008)    ; echo:  Enable echoing
  164. (define ttyl/echo-nl          #x00000010)    ; echonl: Echo nl even if echo is off
  165. (define ttyl/canonical          #x00000100)    ; icanon: Canonicalize input
  166. (define ttyl/enable-signals   #x00000080)    ; isig: Enable ^c, ^z signalling
  167. (define ttyl/extended          #x00000400)    ; iexten:  Enable extensions
  168. (define ttyl/ttou-signal      #x00400000)    ; tostop: SIGTTOU on background output
  169. (define ttyl/no-flush-on-interrupt #x80000000) ; noflsh
  170.  
  171. ;;; SVR4 & 4.3+BSD
  172. (define ttyl/visual-delete-line #x00000001); echoke: visually erase a line-kill 
  173. (define ttyl/hardcopy-delete    #x00000020); echoprt: visual erase for hardcopy 
  174. (define ttyl/echo-ctl        #x00000040); echoctl: echo control chars as "^X" 
  175. (define ttyl/flush-output    #x00800000); flusho: output is being flushed
  176. (define ttyl/reprint-unread-chars #x20000000); pendin: retype pending input
  177.  
  178. ;;; 4.3+BSD
  179. (define ttyl/alt-delete-word    #x00000200)    ; altwerase
  180. (define ttyl/no-kernel-status    #x02000000)    ; nokerninfo: no kernel status on ^T
  181.  
  182. ;;; SVR4
  183. (define ttyl/case-map #f)    ; xcase: canonical upper/lower presentation
  184.  
  185. ;;; Vector of (speed . code) pairs.
  186.  
  187. (define baud-rates '#((0     . 0)    (50    . 50)    (75    . 75)
  188.               (110   . 110)    (134   . 134)    (150   . 150)
  189.               (200   . 200)    (300   . 300)    (600   . 600)
  190.               (1200  . 1200)    (1800  . 1800)  (2400  . 2400)    
  191.               (4800  . 4800)    (7200  . 7200)  (9600  . 9600)
  192.               (14400 . 14400)   (19200 . 19200)    (28800 . 28800)
  193.               (38400 . 38400)    (19200 . exta)  (38400 . extb)
  194.               (57600 . 57600)    (76800 . 76800) (115200 . 115200)
  195.               (230400 . 230400)))
  196.  
  197. ;;; tcflush() constants
  198. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  199.  
  200. (define %flush-tty/input  1)    ; TCIFLUSH
  201. (define %flush-tty/output 2)    ; TCOFLUSH
  202. (define %flush-tty/both      3)    ; TCIOFLUSH
  203.  
  204.  
  205. ;;; tcflow() constants
  206. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  207.  
  208. (define %tcflow/start-out 2)    ; TCOON
  209. (define %tcflow/stop-out  1)    ; TCOOFF
  210. (define %tcflow/start-in  4)    ; TCION
  211. (define %tcflow/stop-in   3)    ; TCIOFF
  212.  
  213.  
  214. ;;; tcsetattr() constants
  215. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  216.  
  217. (define %set-tty-info/now    0)    ; TCSANOW   Make change immediately.
  218. (define %set-tty-info/drain    1)    ; TCSADRAIN Drain output, then change.
  219. (define %set-tty-info/flush    2)    ; TCSAFLUSH Drain output, flush input.
  220. (define %set-tty-info/soft    #x10)    ; flag: don't alter h.w. state 
  221.